﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace AcademiaInteligenteData.DAL
{
    class DaoCliente : DaoConnection
    {
        public void InserirCliente(Cliente cliente)
        {
            string insertCliente = "ai_sp_inserirCliente";
            List<SqlParameter> parametros = new List<SqlParameter>();

            parametros.Add(new SqlParameter("@id", cliente.Id));
            parametros[0].Direction = System.Data.ParameterDirection.InputOutput;
            parametros.Add(new SqlParameter("@nome", cliente.Nome));
            parametros.Add(new SqlParameter("@cpf", cliente.Cpf));
            parametros.Add(new SqlParameter("@sexo", cliente.Sexo));
            parametros.Add(new SqlParameter("@altura", cliente.Altura));
            parametros.Add(new SqlParameter("@cep", cliente.Cep));
            parametros.Add(new SqlParameter("@endereco", cliente.Endereco));
            parametros.Add(new SqlParameter("@numero", cliente.Numero));
            parametros.Add(new SqlParameter("@complemento", cliente.Complemento));
            parametros.Add(new SqlParameter("@bairro", cliente.Bairro));
            parametros.Add(new SqlParameter("@cidade", cliente.Cidade));
            parametros.Add(new SqlParameter("@estado", cliente.Estado));
            parametros.Add(new SqlParameter("@login", cliente.Login));
            parametros.Add(new SqlParameter("@senha", cliente.Senha));
            parametros.Add(new SqlParameter("@data_inclusao", DateTime.Now));
            parametros.Add(new SqlParameter("@ativo", true));
            Executar(insertCliente, true, parametros);
            cliente.Id = Convert.ToInt32(parametros[0].Value);
        }
        public void AlterarCliente(Cliente cliente)
        {
            string alterarCliente = "ai_sp_alterarCliente";
            List<SqlParameter> parametros = new List<SqlParameter>();

            parametros.Add(new SqlParameter("@id", cliente.Id));
            parametros.Add(new SqlParameter("@nome", cliente.Nome));
            parametros.Add(new SqlParameter("@cpf", cliente.Cpf));
            parametros.Add(new SqlParameter("@sexo", cliente.Sexo));
            parametros.Add(new SqlParameter("@altura", cliente.Altura));
            parametros.Add(new SqlParameter("@cep", cliente.Cep));
            parametros.Add(new SqlParameter("@endereco", cliente.Endereco));
            parametros.Add(new SqlParameter("@numero", cliente.Numero));
            parametros.Add(new SqlParameter("@complemento", cliente.Complemento));
            parametros.Add(new SqlParameter("@bairro", cliente.Bairro));
            parametros.Add(new SqlParameter("@cidade", cliente.Cidade));
            parametros.Add(new SqlParameter("@estado", cliente.Estado));
            parametros.Add(new SqlParameter("@login", cliente.Login));
            parametros.Add(new SqlParameter("@senha", cliente.Senha));
            parametros.Add(new SqlParameter("@ativo", cliente.Ativo));
            Executar(alterarCliente, true, parametros);
        }
        public void ExcluirClientePorID(int id)
        {
            string excluirCliente = "ai_sp_excluirCliente";
            List<SqlParameter> parametros = new List<SqlParameter>();
            parametros.Add(new SqlParameter("@id", id));
            Executar(excluirCliente, true, parametros);
        }
        public Cliente SelecionarClientePorID(int id)
        {
            string selecionaCliente = "ai_sp_selecionarClientePorID";
            List<SqlParameter> parametros = new List<SqlParameter>();
            parametros.Add(new SqlParameter("@id", id));
            DataSet reader = Selecionar(selecionaCliente, true, parametros);
            int i = 0;
            Cliente cliente = new Cliente();
            cliente.Nome = Convert.ToString(reader.Tables[0].Rows[i]["nome"]);
            cliente.Login = Convert.ToString(reader.Tables[0].Rows[i]["login"]);
            cliente.Senha = Convert.ToString(reader.Tables[0].Rows[i]["senha"]);
            cliente.Endereco = Convert.ToString(reader.Tables[0].Rows[i]["endereco"]);
            cliente.Numero = Convert.ToString(reader.Tables[0].Rows[i]["numero"]);
            cliente.Complemento = Convert.ToString(reader.Tables[0].Rows[i]["complemento"]);
            cliente.Bairro = Convert.ToString(reader.Tables[0].Rows[i]["bairro"]);
            cliente.Cidade = Convert.ToString(reader.Tables[0].Rows[i]["cidade"]);
            cliente.Cep = Convert.ToString(reader.Tables[0].Rows[i]["cep"]);
            cliente.Estado = Convert.ToString(reader.Tables[0].Rows[i]["estado"]);
            cliente.Cpf = Convert.ToString(reader.Tables[0].Rows[i]["cpf"]);
            cliente.Sexo = Convert.ToString(reader.Tables[0].Rows[i]["sexo"]);
            cliente.Altura = Convert.ToDouble(reader.Tables[0].Rows[i]["altura"]);

            cliente.Id = id;
            return cliente;
        }
        public Cliente SelecionarClientePorLoginSenha(string login, string senha)
        {
            Cliente cliente = new Cliente();
            string selecionaFuncionario = "ai_sp_selecionarUsuarioPorLoginSenha";
            List<SqlParameter> parametros = new List<SqlParameter>();
            parametros.Add(new SqlParameter("@login", login));
            parametros.Add(new SqlParameter("@senha", senha));
            DataSet reader = Selecionar(selecionaFuncionario, true, parametros);
            int i = 0;
            cliente.Id = Convert.ToInt32(reader.Tables[0].Rows[i]["id"]);
            cliente.Nome = Convert.ToString(reader.Tables[0].Rows[i]["nome"]);
            return cliente;
        }
    }
}
